﻿// 3643. 上楼梯.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/3646/

一个楼梯共有 n级台阶，每次可以走一级或者两级或者三级，
问从第 0级台阶走到第 n级台阶一共有多少种方案。

输入格式
一个整数 N。

输出格式
一个整数，表示方案总数。

数据范围
1≤N≤20
输入样例：
4
输出样例：
7
*/


#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <memory.h>

using namespace std;


const int N = 50;
int dp[N];
int n;

int main()
{
	cin >> n;

	dp[1] = 1;
	dp[2] = 2;
	dp[3] = 4;

	for (int i = 4; i <= n; i++) {
		dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
	}

	cout << dp[n] << endl;

	return 0;
}
